/*
 * @Description:TreeSet
 * 
 * @Author: rendc
 * 
 * @Date: 2025-08-13 09:09:02
 * 
 * @LastEditors: rendc
 * 
 * @LastEditTime: 2025-08-13 10:20:29
 */

import java.util.Set;
import java.util.TreeSet;

public class TestTreeSet {

  public static void main(String[] args) {

    // 实例化集合对象 TreeSet
    Set<Integer> set = new TreeSet<>();
    // 添加元素 观察排序的情况
    set.add(3);
    set.add(5);
    set.add(1);
    set.add(0);
    set.add(9);
    set.add(11);
    set.add(33);
    // 直接输出
    // System.out.println("set1:" + set);
    // 实例化集合对象 TreeSet
    Set<String> set2 = new TreeSet<>();
    // 添加元素 观察排序的情况
    // 注意String类型数字的排序情况
    set2.add("3");
    set2.add("5");
    set2.add("1");
    set2.add("0");
    set2.add("9");
    set2.add("15");
    set2.add("13");
    set2.add("11");
    set2.add("33");
    set2.add("c");
    set2.add("a");
    set2.add("b");
    // 直接输出
    // System.out.println("set2:" + set2);
    // 创建集合3 存放 Student 类型对象
    Set<Student> set3 = new TreeSet<>();
    Student s1 = new Student("cs", 18);
    Student s3 = new Student("bw", 19);
    Student s2 = new Student("as", 20);
    Student s4 = new Student("as", 10);
    set3.add(s3);
    set3.add(s1);
    set3.add(s2);
    set3.add(s4);
    // 元素插入过程 1. 排序 2. 去重
    // 当TreeSet插入元素的时候会调用 compareTo方法
    // 如果方法返回
    System.out.println("set3:" + set3);

    // 整形 byte、short、int、long
    // 浮点型 float、double
    // 字符类型 char '1'
    // 布尔类型 boolean
    // Boolean
    Set<Boolean> set4 = new TreeSet<>();
    set4.add(true);
    set4.add(false);
    System.out.println(set4);
  }
}